<?php
/*
  [EWEISHOP] Copyright(C) 2017 Elinkint Inc.
  This is NOT a freeware, use is subject to license terms
   
  OfficialAccountPoi.php 2018-05-24 18:23 likexin
   
*/

namespace common\library\wechat\officialaccount;

use common\component\wechat\Wechat;
use common\library\wechat\WechatApi;

class OfficialAccountPoi extends WechatApi
{

    /**
     * 获取门店信息
     * @param int $poiId 门店ID
     * @return array|bool|void
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/poi
     */
    public static function get(int $poiId)
    {
        $result = self::getInstance()->poi->get($poiId);
        return Wechat::apiError($result);
    }

    /**
     * 获取门店列表
     * @param int $offset 查询起点
     * @param int $limit 查询条数
     * @return array|bool|void
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/poi
     */
    public static function getList(int $offset = 0, int $limit = 20)
    {
        $result = self::getInstance()->poi->list($offset, $limit);
        return Wechat::apiError($result);
    }

    /**
     * 创建门店
     * @param array $baseInfo 门店基本信息
     * @param string $baseInfo[sid] 商户自己的id 非必填
     * @param string $baseInfo[business_name] 门店名称 必填
     * @param string $baseInfo[branch_name] 分店名称 必填
     * @param string $baseInfo[province] 门店所在的省份 必填
     * @param string $baseInfo[city] 门店所在的城市(10字内) 必填
     * @param string $baseInfo[district] 门店所在地区(10字内) 必填
     * @param string $baseInfo[address] 门店所在的详细街道地址(不要填写省市信息) 必填
     * @param string $baseInfo[telephone] 门店的电话(纯数字，区号、分机号均由"-"隔开) 必填
     * @param string $baseInfo[categories] 门店的类型(不同级分类用“,”隔开，如：美食，川菜，火锅。详细分类参见附件：微信门店类目表) 必填
     * @param integer $baseInfo[offset_type] 坐标类型： 1 为火星坐标 2 为sogou经纬度 3 为百度经纬度 4 为mapbar经纬度 5 为GPS坐标 6 为sogou墨卡托坐标 注：高德经纬度无需转换可直接使用 必填
     * @param string $baseInfo[longitude] 门店所在地理位置的经度 必填
     * @param string $baseInfo[latitude] 门店所在地理位置的纬度(经纬度均为火星坐标，最好选用腾讯地图标记的坐标) 必填
     * @param array $baseInfo[photo_list] 图片列表，url 形式，可以有多张图片，尺寸为 640*340px。必须为上一接口生成的url。 图片内容不允许与门店不相关，不允许为二维码、员工合照（或模特肖像）、营业执照、无门店正门的街景、地图截图、公交地铁站牌、菜单截图等 非必填
     * @param string $baseInfo[recommend] 推荐品，餐厅可为推荐菜；酒店为推荐套房；景点为推荐游玩景点等，针对自己行业的推荐内容 200字以内 非必填
     * @param string $baseInfo[special] 特色服务，如免费wifi，免费停车，送货上门等商户能提供的特色功能或服务 非必填
     * @param string $baseInfo[introduction] 商户简介，主要介绍商户信息等 300字以内 非必填
     * @param string $baseInfo[open_time] 营业时间，24 小时制表示，用“-”连接，如 8:00-20:00 非必填
     * @param integer $baseInfo[avg_price] 人均价格，大于0 的整数 非必填
     * @return array|bool|void
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/poiz
     * @link https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1444378120
     */
    public static function create(array $baseInfo)
    {
        $result = self::getInstance()->poi->create($baseInfo);
        return Wechat::apiError($result);
    }

    /**
     * 更新门店信息
     * @param int $poiId 门店ID
     * @param array $data 需要更新的部分数据
     * @param array $data[] 同创建门店
     * @return array|bool|void
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/poi
     */
    public static function update(int $poiId, array $data)
    {
        $result = self::getInstance()->poi->update($poiId, $data);
        return Wechat::apiError($result);
    }

    /**
     * 删除门店
     * @param int $poiId 门店ID
     * @return array|bool|void
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/poi
     */
    public static function delete(int $poiId)
    {
        $result = self::getInstance()->poi->delete($poiId);
        return Wechat::apiError($result);
    }

}